package javax.annotation.meta;

/**
 * Used to describe the relationship between a qualifier T and the set of values S possible on an
 * annotated element.
 *
 * <p>In particular, an issues should be reported if an ALWAYS or MAYBE value is used where a NEVER
 * value is required, or if a NEVER or MAYBE value is used where an ALWAYS value is required.
 */
public enum When {
  /** S is a subset of T */
  ALWAYS,
  /** nothing definitive is known about the relation between S and T */
  UNKNOWN,
  /** S intersection T is non empty and S - T is nonempty */
  MAYBE,
  /** S intersection T is empty */
  NEVER;
}
